/**
 * Created by xl on 2016/4/26.
 */

    //'hr.xunlei.com/xlhr/spmvc'
var basePath='/xlhr/spmvc';
//基础数据
var configData={};
function getConfig() {
    $.ajax({
        url: basePath + '/getconfig?random=' + Math.random(),
        type: "post",
        data: '',
        dataType: 'json',
        cache: false,
        async:false,
        success: function (datas) {
            configData = datas;
            var cityTemp={},worktypeTemp={},familytypeTemp={},positionTemp={};
            $.each(datas.city,function(i,v){
                cityTemp[v.id]= v.name;
            });
            $.each(datas.positiontype,function(i,v){
                familytypeTemp[v.id]= v.name;
                $.each(v.children,function(k,d){
                    positionTemp[d.id]= d.name;
                });
            });
            $.each(datas.worktype,function(i,v){
                worktypeTemp[v.id]= v.name;
            });
            configData.cityObj=cityTemp;
            configData.familyObj=familytypeTemp;
            configData.worktypeObj=worktypeTemp;
            configData.positionObj=positionTemp;
        },
        error: function () {
            alert('网络异常');
            //getConfig();
        }
    });
}
getConfig();

//阻止默认事件
function stopPreEvent(event){
    var e=event || window.event;
    if(e.preventDefault){
        e.preventDefault();
    }else{
        e.returnValue=false;
    }
}

//阻止冒泡
function stopProEvent(event) {
    var e = event || window.event;
    if (e.stopPropagation) {
        e.stopPropagation();
    } else {
        e.cancelBubble = true;
    }
}

//判断是否支持h5 属性
function hasSupport(property,ele) {
    var attr = property;
    var input = document.createElement(ele);
    return attr in input;
}

//获取url参数
function getQueryString(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
    var r = window.location.search.substr(1).match(reg);
    if (r != null)return decodeURI(r[2]);
    return null;
}

//填充js模板
function cellrepalce ( datas, cell,todo) {
    for (var i in datas) {
        var reg = new RegExp('\\$' + i, "g");
        if (todo) {
            cell = cell.replace(reg, $('<i>').text(todo(i, datas[i], datas) || "").html());
        } else {
            cell = cell.replace(reg, $('<i>').text(datas[i] || "").html());
        }
    }
    return cell;
}

/*
 *轮播图
 * param string options.imgEle 图片容器
 * param string options.imgEleChild 图片容器内部子元素，或者li结构  或者a结构
 * param string options.imgChildClass 图片显示隐藏class
 * param int options.imgWidth 图片宽度
 * param int options.carouseltime 轮播时间
 * param string options.prevImg 左边箭头-上一幅图片
 * param string options.nextImg 右边箭头-下一幅图片
 * param string options.indexListEle 图片右下角或者中部序号容器
 * param string options.indexListChild 图片右下角或者中部序号容器内部子元素，重构给出结构不一样，或者li结构，或者a结构
 * param string options.indexListEleClass 图片右下角或者中部序号容器内部子元素选中时样式
 * param string options.carouseStyle   轮播风格(可扩展) 是通过内联还是计算left方式还是class 隐藏/显示控制
 * param bool options.special  特殊情况
 */
function CarouselImg(opt) {
    if (opt.imgEle == '' || opt.imgEle == null || opt.imgEle == undefined || opt.imgEleChild == '' || opt.imgEleChild == null || opt.imgEleChild == undefined) {
        alert("缺少必要参数.");
        return;
    }
    var curIndex = 0, //当前图片index
        imgLen = $(opt.imgEle + " " + opt.imgEleChild).length;//图片总数
    //自动切换定时器
    var autoChange = setInterval(function () {
        if (curIndex < imgLen - 1) {
            curIndex++;
        } else {
            curIndex = 0;
        }
        changeTo(curIndex);
    }, parseInt(opt.carouseltime));
    //图片切换处理方法
    function changeTo(num,str) {
        if (opt.carouseStyle == 'classCtro') {
            //通过class方式
            $(opt.imgEle).find(opt.imgEleChild).removeClass(opt.imgChildClass).eq(num).addClass(opt.imgChildClass);
            if(opt.special) {
                if (str == 'spehover') {
                    $(opt.indexListEle).find(opt.indexListChild).removeClass(opt.indexListEleClass).eq(num).addClass(opt.indexListEleClass);
                } else {
                    $(opt.indexListEle).find(opt.indexListChild).removeClass(opt.indexListEleClass).eq(num).addClass(opt.indexListEleClass);
                    if (num > 3 && num < 13) {
                        $(opt.indexListEle).find(opt.indexListChild).eq(num).prevAll().hide();
                        for (var k = num; k < 4+num; k++) {
                            $(opt.indexListEle).find(opt.indexListChild).eq(k).show();
                        }
                    }
                    if (num <= 3) {
                        $(opt.indexListEle).find(opt.indexListChild).hide();
                        for (var i = 0; i < 4; i++) {
                            $(opt.indexListEle).find(opt.indexListChild).eq(i).show();
                        }
                    }
                    if(num>=13) {
                        $(opt.indexListEle).find(opt.indexListChild).hide();
                        for (var m = 12; m < 16; m++) {
                            $(opt.indexListEle).find(opt.indexListChild).eq(m).show();
                        }
                    }
                }
            }else{
                $(opt.indexListEle).find(opt.indexListChild).removeClass(opt.indexListEleClass).eq(num).addClass(opt.indexListEleClass);
            }
        } else if(opt.carouseStyle == 'leftCtro'){
            //通过left方式
            var goLeft = num * parseInt(opt.imgWidth);
            if(str=='leftPrev') {
                if (goLeft == ((imgLen-1)*parseInt(opt.imgWidth))) {
                    $(opt.imgEle).find('ul').attr("style", "left:-"+(goLeft+1000)+"px;");
                }
            }else {
                if (goLeft == 0) {
                    $(opt.imgEle).find('ul').attr("style", "left:1000px;");
                }
            }
            $(opt.imgEle).find('ul').animate({left: "-" + goLeft + "px"}, 1000);
            //$(opt.imgEle).find(opt.imgEleChild).attr("style","left:-9999px");
            //$(opt.imgEle).find(opt.imgEleChild).animate({left:"-1000px"},500);
            //$(opt.imgEle).find(opt.imgEleChild).eq(num).attr("style","left:0px");
            //$(opt.imgEle).find(opt.imgEleChild).eq(num).animate({left:"0"},1000);
            $(opt.indexListEle).find(opt.indexListChild).removeClass(opt.indexListEleClass).eq(num).addClass(opt.indexListEleClass);
        } else{
            //默认通过内联方式
            $(opt.imgEle).find(opt.imgEleChild).hide().eq(num).show();
            if(opt.special) {
                if (str == 'spehover') {
                    $(opt.indexListEle).find(opt.indexListChild).removeClass(opt.indexListEleClass).eq(num).addClass(opt.indexListEleClass);
                } else {
                    $(opt.indexListEle).find(opt.indexListChild).removeClass(opt.indexListEleClass).eq(num).addClass(opt.indexListEleClass);
                    if (num > 3 && num < 13) {
                        $(opt.indexListEle).find(opt.indexListChild).eq(num).prevAll().hide();
                        for (var k = num; k < 4+num; k++) {
                            $(opt.indexListEle).find(opt.indexListChild).eq(k).show();
                        }
                    }
                    if (num <= 3) {
                        $(opt.indexListEle).find(opt.indexListChild).hide();
                        for (var i = 0; i < 4; i++) {
                            $(opt.indexListEle).find(opt.indexListChild).eq(i).show();
                        }
                    }
                    if(num>=13) {
                        $(opt.indexListEle).find(opt.indexListChild).hide();
                        for (var m = 12; m < 16; m++) {
                            $(opt.indexListEle).find(opt.indexListChild).eq(m).show();
                        }
                    }
                }
            }else{
                $(opt.indexListEle).find(opt.indexListChild).removeClass(opt.indexListEleClass).eq(num).addClass(opt.indexListEleClass);
            }
        }
    }

    //重置定时器
    function autoChangeAgain() {
        autoChange = setInterval(function () {
            if (curIndex < imgLen - 1) {
                curIndex++;
            } else {
                curIndex = 0;
            }
            changeTo(curIndex);
        }, parseInt(opt.carouseltime));
    }

    //左箭头事件
    if (opt.prevImg) {
        $(opt.prevImg).hover(function () {
            //滑入清除
            clearInterval(autoChange);
        }, function () {
            //滑出重置
            autoChangeAgain();
        });
        $(opt.prevImg).click(function (e) {
            stopPreEvent(e);
            curIndex = (curIndex > 0) ? (--curIndex) : (imgLen - 1);
            if(opt.carouseStyle=="leftCtro"){
                changeTo(curIndex,"leftPrev");
            }else{
                changeTo(curIndex);
            }
        });
    }
    //右箭头事件
    if (opt.nextImg) {
        $(opt.nextImg).hover(function () {
            clearInterval(autoChange);
        }, function () {
            autoChangeAgain();
        });
        $(opt.nextImg).click(function (e) {
            stopPreEvent(e);
            curIndex = (curIndex < imgLen - 1) ? (++curIndex) : 0;
            changeTo(curIndex);
        });
    }
    //图片右下角或中部序号事件
    if (opt.indexListEle && opt.indexListChild) {
        $(opt.indexListEle).find(opt.indexListChild).each(function (item) {
            $(this).hover(function () {
                clearInterval(autoChange);
                if(opt.special){
                    changeTo(item,'spehover');
                }else{
                    changeTo(item);
                }
                curIndex = item;
            }, function () {
                autoChangeAgain();
            });
        });
    }
}
